Repository navigation
Conversation
This pulls some less-trivial changes out of the main migration to `Value<'ll>`.
|
Some changes occurred in compiler/rustc_codegen_llvm/src/builder/autodiff.rs cc @ZuseZ4 Some changes occurred in compiler/rustc_codegen_llvm/src/llvm/enzyme_ffi.rs cc @ZuseZ4 Some changes occurred in compiler/rustc_codegen_llvm/src/debuginfo cc @Walnut356 |
|
r? @tmiasko rustbot has assigned @tmiasko. Use Why was this reviewer chosen?The reviewer was selected based on:
|
|
The bulk of the migration was done with a few simple regex-replaces, after which I went through and cleaned up all the resulting compile errors by hand. Then I eyeballed every changed line a few times (over multiple days) to check for any unexpected weirdness. |
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
@bors r+ p=1 |
cg_llvm: Use an invariant lifetime brand for LLVM values This PR changes the type of LLVM value references from `&'ll Value` to `Value<'ll>` with an invariant lifetime brand, to help uphold soundness of the FFI bindings. There should be no change to compiler output. --- Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.
…uwer Rollup of 6 pull requests Successful merges: - #165804 (cg_llvm: Use an invariant lifetime brand for LLVM values) - #165412 (Implement `core::ops::FnAddr`) - #165487 (Migrate built-in macros `pattern_type` & `view_type` to macros 2.0 that expand to internal syntax) - #165818 (do not lint `redundant_lifetimes` on items from external macros) - #164795 (Extend support of lint `explicit_outlives_requirements` to checked type aliases) - #165824 (Add regression test for HRTB projection bound with TryFrom error)
cg_llvm: Use an invariant lifetime brand for LLVM values This PR changes the type of LLVM value references from `&'ll Value` to `Value<'ll>` with an invariant lifetime brand, to help uphold soundness of the FFI bindings. There should be no change to compiler output. --- Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.
Rollup of 12 pull requests Successful merges: - #165804 (cg_llvm: Use an invariant lifetime brand for LLVM values) - #165778 (Bump stage0 to 1.101.0-beta.1) - #165412 (Implement `core::ops::FnAddr`) - #165487 (Migrate built-in macros `pattern_type` & `view_type` to macros 2.0 that expand to internal syntax) - #165818 (do not lint `redundant_lifetimes` on items from external macros) - #163077 (feat: support nested functions with `#[offload_kernel]`) - #164795 (Extend support of lint `explicit_outlives_requirements` to checked type aliases) - #165578 (Avoid `Hash::hash` when stable-hashing various types) - #165729 (tests: Add regression test for infinite recursive dereference) - #165819 (Avoid redundant scans when extracting stage0 archives) - #165822 (Remove unused compiler modules and types) - #165824 (Add regression test for HRTB projection bound with TryFrom error)
|
⌛ Testing commit 6c0a3df with merge f2e7c29... Workflow: https://github.com/rust-lang/rust/actions/runs/43155070475 |
cg_llvm: Use an invariant lifetime brand for LLVM values This PR changes the type of LLVM value references from `&'ll Value` to `Value<'ll>` with an invariant lifetime brand, to help uphold soundness of the FFI bindings. There should be no change to compiler output. --- Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.
cg_llvm: Use an invariant lifetime brand for LLVM values This PR changes the type of LLVM value references from `&'ll Value` to `Value<'ll>` with an invariant lifetime brand, to help uphold soundness of the FFI bindings. There should be no change to compiler output. --- Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.
|
@bors yield (enclosing rollup) |
|
Auto build was cancelled. Cancelled workflows: The next pull request likely to be tested is #165844. |
Rollup of 11 pull requests Successful merges: - #165804 (cg_llvm: Use an invariant lifetime brand for LLVM values) - #165778 (Bump stage0 to 1.101.0-beta.1) - #165412 (Implement `core::ops::FnAddr`) - #165487 (Migrate built-in macros `pattern_type` & `view_type` to macros 2.0 that expand to internal syntax) - #165818 (do not lint `redundant_lifetimes` on items from external macros) - #163077 (feat: support nested functions with `#[offload_kernel]`) - #164795 (Extend support of lint `explicit_outlives_requirements` to checked type aliases) - #165578 (Avoid `Hash::hash` when stable-hashing various types) - #165729 (tests: Add regression test for infinite recursive dereference) - #165822 (Remove unused compiler modules and types) - #165824 (Add regression test for HRTB projection bound with TryFrom error)
This PR changes the type of LLVM value references from
&'ll ValuetoValue<'ll>with an invariant lifetime brand, to help uphold soundness of the FFI bindings.There should be no change to compiler output.
Value is one of the more widely-used types, much more so than Type, so unfortunately this step ends up needing to touch quite a lot of code. Thankfully almost all of the changes are trivial.